From a561aacab7e9ef5aeab2173d23ad06ff45e36173 Mon Sep 17 00:00:00 2001 From: "kfraser@localhost.localdomain" Date: Thu, 31 May 2007 16:09:11 +0100 Subject: [PATCH] VMX: Only write top-half of machine addresses into VMCS fields in PAE mode. Signed-off-by: Keir Fraser --- xen/arch/x86/hvm/vmx/vmcs.c | 4 ++-- xen/arch/x86/hvm/vmx/vmx.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c index 413981c061..a59fd6ba25 100644 --- a/xen/arch/x86/hvm/vmx/vmcs.c +++ b/xen/arch/x86/hvm/vmx/vmcs.c @@ -438,9 +438,9 @@ static void construct_vmcs(struct vcpu *v) if ( cpu_has_vmx_tpr_shadow ) { - uint64_t virt_page_ma = page_to_maddr(vcpu_vlapic(v)->regs_page); + paddr_t virt_page_ma = page_to_maddr(vcpu_vlapic(v)->regs_page); __vmwrite(VIRTUAL_APIC_PAGE_ADDR, virt_page_ma); -#if defined (__i386__) +#if defined (CONFIG_X86_PAE) __vmwrite(VIRTUAL_APIC_PAGE_ADDR_HIGH, virt_page_ma >> 32); #endif __vmwrite(TPR_THRESHOLD, 0); diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c index 2aff3d295a..d2eff79d10 100644 --- a/xen/arch/x86/hvm/vmx/vmx.c +++ b/xen/arch/x86/hvm/vmx/vmx.c @@ -2540,7 +2540,7 @@ static void vmx_install_vlapic_mapping(struct vcpu *v) vmx_vmcs_enter(v); __vmwrite(VIRTUAL_APIC_PAGE_ADDR, virt_page_ma); __vmwrite(APIC_ACCESS_ADDR, apic_page_ma); -#if defined (__i386__) +#if defined (CONFIG_X86_PAE) __vmwrite(VIRTUAL_APIC_PAGE_ADDR_HIGH, virt_page_ma >> 32); __vmwrite(APIC_ACCESS_ADDR_HIGH, apic_page_ma >> 32); #endif -- 2.30.2